Реальные ли объемы на форекс? Стоит ли обращать внимание на объемы сделок рынка форекс при анализе? Или это всего-навсего очередной метод анализа рынка, который не работает?
Settings={
Name="GVOL",
period=200,
maxline=20,
width=4,
count=50,
xshift=0,
vlm=1,
line={}
}
--[[
описание свойств:
xshift - сдвиг по горизонтали
count - количество черточек по вертикали
period- сколько баров берутся в подсчет
maxline - количество баров для максимальной черточки
width - толщина черточки
vlm - 1-c учетом оъема 0-просто распределение без объема,
--]]
function Init()
n=Settings.count
vol={}
for j = 1, n do
vol[j]=0
Settings.line[j] = {Color=RGB(192,192,192),Type=TYPE_LINE,Width=Settings.width}
--for i=Size()-Settings.xshift-Settings.maxline, Size()-Settings.xshift do
for i=1, Size() do
SetValue(i, j, nil)
end
end
return Settings.count
end
function OnCalculate(index)
if (index < Size()-Settings.xshift)or(index > Size()-Settings.xshift) then
return nil
else
n=Settings.count
maxv=0
maxc=0
minc=9999
for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do
if C(i) ~= nil then
if maxc < C(i) then
maxc = C(i)
end
if minc > C(i) then
minc = C(i)
end
end
end
delta = (maxc - minc)/n
for i=Size()-Settings.xshift-Settings.period, Size()-Settings.xshift do
for j = 1, n do
if C(i) ~= nil then
if (C(i) > minc + (j-1)*delta) and (C(i) <= minc + j*delta) then
if Settings.vlm == 1 then
if V(i) ~= nil then
vol[j]=vol[j]+V(i)
end
else
vol[j]=vol[j]+1
end
end
end
end
end
for j = 1, n do
vol[j] = math.floor(vol[j]+0.5)
if maxv < vol[j] then
maxv = vol[j]
end
end
k = 0
for i=Size()-Settings.xshift-Settings.maxline+1, Size()-Settings.xshift do
k = k + 1
for j = 1, n do
if vol[j] >= (Settings.maxline - k)*maxv/Settings.maxline then
SetValue(i, j, minc + j*delta)
else
SetValue(i, j, nil)
end
end
end
end
end
Settings={}
Settings.period = 500
Settings.Name = «xHV»
---------------------------------------------------------------------------------------
function FFF()
local CC={}
local LL={}
local VV={}
return function(ind, _p,_N)
local index = ind
local MAX = 0
local MAXV = 0
local MIN = 0
local RR = 0
local jj = 0
local kk = 0
if index == 1 then
VV={}
CC={}
LL={}
------------------
VV[index]=V(index)
CC[1]=0
return nil
end
------------------------------
VV[index]=V(index)
if index < (Size()-2) then return nil end
MAX = H(index)
MIN = L(index)
for i = 0, _p-1 do
MAX=math.max(MAX,H(index-i))
MIN=math.min(MIN,L(index-i))
end
----------------------------------------
for i = 1, _N do CC[i]=0 end
for i = 0, _p-1 do
jj=math.floor( (H(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
kk=math.floor( (L(index-i)-MIN)/(MAX-MIN)*(_N-1))+1
for k=1,(jj-kk) do
CC[kk+k-1]=CC[kk+k-1]+V(index-i)/(jj-kk)
end
end
--------------------
MAXV = 0
for i = 1, _N do MAXV=math.max(MAXV,CC[i])end
Много тем в последнее время про «кластерные объемы», «горизонтальный объем», а также о том, где брать для них данные, какие есть терминалы и т. д. Надеюсь, что данный коротенький обзор кому-то покажется полезным.
Итак, для построения гистограммы горизонтальных объемов нам нужны, в идеале, тиковые данные. Без них все будет неточно, некорректно и вообще бе. Я задался вопросом, а насколько неточно?
Вот диаграмма горизонтальных объемов по fRTS, накопленных за последние три месяца, построенная по тиковым данным (на голубые линии на графике можно не смотреть, они просто держат масштаб):
Хорошо, когда тиковые данные есть. Но их может и не быть — они либо не хранятся за нужный период, или платные. Попытаемся грубо построить гистограмму объемов, используя часовые бары и исходя из абсолютно неправильного предположения, что объем в баре распределен равномерно. То есть мы просто будем брать долю бара, попавшего в полосу, и считать объем в полосе, как долю от общего объема бара. Вот что в итоге у нас получилось: